In a packet-switched communication network, data are transmitted in the form of packets that are routed from a source node to a destination node through possible intermediate nodes. Exemplary packet-switched networks are IP (Internet Protocol) networks, Ethernet networks and MPLS (Multi-Protocol Label Switching) networks.
Packets not always reach the destination node, i.e. they may be lost during transmission through the network. Loss of packets is due to different reasons. For instance, a node or link may fail, thereby causing a total packet loss until the failure is either bypassed or fixed. Alternatively, packets may be discarded by a node due to a congestion of its ports. Besides, packets may be discarded by a node since they contain bit errors. In any case, when providing a service by transmitting data through a packet-switched network, the rate of packets lost during transmission affects the quality of service (QoS) of that service.
Besides, a packet is transmitted at a transmission time by the source node and is received at a reception time by the destination node. The time elapsing between transmission time and reception time is typically called “one-way delay”. The one-way delay of a packet is given by the following equation:OWD=Trx−Ttx,  [1]where Trx is the transmission time and Ttx is the reception time of the packet. The one-way delay of a packet mainly depends on the number of possible intermediate nodes crossed by the packet from source to destination, the permanence time of the packet at each node and the propagation time along the links. Since the packets are routed hop-by-hop by each node, both the number of possible intermediate nodes crossed by packets and the permanence time of packets at each node are unpredictable. Accordingly, the one-way delay of a packet is almost unpredictable.
Besides, packets of a same packet flow may have different one-way delays. The difference in the one-way delays of two packets of a same data flow is termed “one-way interarrival jitter” (or, briefly, “one-way jitter”). In particular, if Ttx1 and Ttx2 are the transmission times for a first packet and a second packet, and Trx1 and Trx2 are the reception times for the first packet and the second packet, the one-way jitter may be expressed as:OWJ=(Trx1−Trx2)−(Ttx1−Ttx2).  [2]
When a communication service (in particular, a real-time voice or data service such as call, conference call, video conference, etc.) is provided by means of a packet-switched network, a measurement of packet loss, one-way delay and one-way jitter affecting the packet flow carrying the service provides an indication of the quality of service (QoS) perceived by the end users of the service. Therefore, measuring packet loss, one-way delay and/or one way-jitter of packet flows in a communication network is of particular interest for network operators.
WO 2010/072251 (in the name of the same Applicant) discloses a method for measuring data loss of a data flow transmitted through a communication network from a transmitting node to a receiving node. Before transmitting the data units of the data flow, the transmitting node marks each data unit for dividing the data flow in blocks. In particular, the transmitting node marks each data unit by setting a bit of its header to “1” or “0”. The marking results in a sequence of blocks, where blocks of data units marked with “1” alternate in time with blocks of data units marked with “0”. The blocks may have a same duration termed “block period” Tb (e.g. 5 minutes). Further, the transmitting node increases by one a first counter C1 each time a data unit marked by “1” is transmitted, and a second counter C0 each time a data unit marked by “0” is transmitted. The marked data units are then received at the receiving node. Each time the receiving node receives a data unit, it checks its marking, increases a third counter C′1 if the marking is “1” and increases a fourth counter C′0 if the marking is “0”. The values of the counters C1, C0, C′1 and C′0 are periodically detected and the detected values are used for calculating the data loss at each block period.
WO 2011/079857 (in the name of the same Applicant) discloses a method for performing a time measurement (in particular, for measuring one-way delay and/or one-way jitter) on a data flow transmitted from a transmitting node to a receiving node of a communication network. According to WO 2011/079857, at the transmitting node, in addition to the above marking operation disclosed by WO 2010/072251, a transmission timestamp is also generated at each block period, which indicates the time at which a predetermined data unit of the current block (for instance, the first data unit of the current block) is transmitted. At the receiving node, a reception timestamp is generated at each block period, which indicates the time at which the predetermined data unit of the current block is received. At each block period, the transmission and reception timestamps are used for calculating the one-way delay affecting the predefined data unit of the current block. Transmission and reception timestamps generated for consecutive data units allow calculation of the one-way jitter.
Instead of measuring one-way delay and one-way jitter, it is known measuring two-way delay and two-way jitter of packets transmitted back and forth along a bidirectional link between two nodes. Two-way measurements are inherently more accurate than one-way measurements, since they are immune to lack of synchronization between the two nodes. These measurements are typically carried out on ad hoc packets, namely artificial packets specifically generated by one of the two nodes for carrying out the measurement.
Two-way delay and two-way jitter in IP networks are typically measured by applying the known Ping function to ad hoc packets based on the known protocol ICMP (Internet Control Message Protocol) defined by RFC 792 (September 1981). The Ping function provides for generating a sequence of ICMP packets at one of the two nodes. Each ICMP packet includes a packet sequence number and a transmission timestamp indicating the time at which the ICMP packet is transmitted. Each ICMP packet is then transmitted back and forth along the link. Upon reception of each ICMP packet at the same node which originated it, a reception timestamp is generated. The packet sequence number allows identifying the received packets and detecting possible reception sequence errors. The transmission and reception timestamps allow calculating two-way delay and jitter.
Furthermore, the known protocols OWAMP (One-Way Active Measurement Protocol) defined by RFC 4656 (September 2006) and TWAMP (Two-Way Active Measurement Protocol) defined by RFC 5357 (October 2008) allow performing one-way measurements and two-way measurements, respectively, in IP networks on artificial packets similar to “real” packets (namely, packets actually carrying user traffic). Differently from the Ping function, the TWAMP protocol provides for inserting into each artificial packet two further timestamps at the remote node: a timestamp indicating the time at which the packet is received at the remote node and a timestamp indicating the time at which the packet is retransmitted by the remote node. This allows taking into account the processing time of the packets at the remote node in the two-way delay and jitter calculation.